runtime.g.preempt (field)
18 uses
runtime (current package)
lock_spinbit.go#L322: if gp.m.locks == 0 && gp.preempt { // restore the preemption request in case we've cleared it in newstack
malloc.go#L2140: if getg().preempt {
mgc.go#L1863: if gp.preempt {
mgcmark.go#L658: if gp.preempt {
mgcmark.go#L1270: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1300: for !(gp.preempt && (preemptible || sched.gcwaiting.Load() || pp.runSafePointFn != 0)) {
mgcmark.go#L1404: for !gp.preempt && !gcCPULimiter.limiting() && workFlushed+gcw.heapScanWork < scanWork {
mgcwork.go#L549: for i := 0; i < batchSize && !(preemptible && gp.preempt); i++ {
preempt.go#L176: gp.preempt = false
preempt.go#L196: if gp.preemptStop && gp.preempt && gp.stackguard0 == stackPreempt && asyncM == gp.m && asyncM.preemptGen.Load() == asyncGen {
preempt.go#L207: gp.preempt = true
preempt.go#L371: return (gp.preempt || gp.m.p != 0 && gp.m.p.ptr().preempt) && readgstatus(gp)&^_Gscan == _Grunning
proc.go#L411: if !gp.preempt && sched.npidle.Load() > 0 {
proc.go#L3347: gp.preempt = false
proc.go#L4995: if gp.preempt {
proc.go#L6880: gp.preempt = true
runtime1.go#L610: if mp.locks == 0 && gp.preempt {
runtime2.go#L514: preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
![]() |
The pages are generated with Golds v0.8.4. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |